home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Format 2004 Junue - Disc 1
/
MacFormat 143 CD1.iso
/
Serious Software
/
RealCADD3.05.sit
/
RealCADD3.05
/
scripts
/
nuage
< prev
next >
Wrap
Text File
|
2003-04-07
|
2KB
|
97 lines
RCAD script
1.00
nuage
nuageup
nuagedown
0
0
0
Dim s_nb, s_i, s_k as integer
Dim s_x1, s_y1, s_x2, s_y2, s_xc, s_yc, s_r, s_angle, s_angle1, s_angle2, s_xcc as double
sub angle2points(fx1 as double, fy1 as double, fx2 as double, fy2 as double)
Dim s_dx, s_dy as double
//Calcul angle
s_dx = fx1 - fx2
s_dy = fy1 - fy2
if s_dx <> 0 then
s_angle = abs(Atan(s_dy / s_dx))
if s_dx > 0 then
if s_dy < 0 then
s_angle = 6.283185307179586 - s_angle
end if
else
if s_dy > 0 then
s_angle = 3.141592653589793 - s_angle
else
s_angle = 3.141592653589793 + s_angle
end if
end if
else
if s_dy = 0 then
s_angle = 0
else
if s_dy > 0 then
s_angle = 1.570796326794897
else
s_angle = 4.71238898038469
end if
end if
end if
s_angle = s_angle * 180 / 3.141592653589793
end sub
s_xcc = (firstx + lastx) / 2
Add_Oval(firstx, firsty, lastx, lasty, 1, 7, 0,false)
DoConvertObjectToPolygon(Dim_Liste)
s_nb = Dim_Liste
s_x2 = XValueObjet_Point(s_nb,0)
s_y2 = YValueObjet_Point(s_nb,0)
s_i = 0
Do
s_i = s_i + 6 + round(6 * Rnd)
if s_i > 140 then
s_i = 144
end if
s_x1 = s_x2
s_y1 = s_y2
s_x2 = XValueObjet_Point(s_nb,s_i)
s_y2 = YValueObjet_Point(s_nb,s_i)
s_xc = (s_x1 + s_x2) / 2
s_yc = (s_y1 + s_y2) / 2
s_r = sqrt(Pow(s_x1- s_xc,2) + Pow(s_y1 - s_yc,2))
angle2points(s_xc, s_yc, s_x1, s_y1)
s_angle1 = s_angle
angle2points(s_xc, s_yc, s_x2, s_y2)
s_angle2 = s_angle
if s_xcc > s_xc then
Add_Arc(s_xc, s_yc, s_r, s_angle1, s_angle2 - s_angle1, 3, 7, 0, False, False)
else
Add_Arc(s_xc, s_yc, s_r, s_angle1, s_angle1 - s_angle2, 3, 7, 0, False, False)
end if
Loop until s_i >= 144
Delete_Objet(s_nb)